import Vue from 'vue';
import qs from 'qs';
import App from './App.vue';
import router from './router';
import store from './store';
import { Toast } from 'vant';


// ================= 1. Axios 全局配置 =================
import axios from 'axios';
Vue.use(Toast);

// ================= 2. 移动端适配 =================
import 'lib-flexible/flexible'; 

// ================= 3. Vant 组件库配置 =================
import 'vant/lib/index.css';

// 创建独立实例（避免污染全局配置）
const http = axios.create({
  baseURL: '/api', // 需配合 vue.config.js 的 devServer.proxy 使用
  timeout: 5000,
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
  },
});

// 自动序列化 POST 数据（排除 FormData 类型）
http.interceptors.request.use((config) => {
  if (config.method === 'post' && !(config.data instanceof FormData)) {
    config.data = qs.stringify(config.data);
  }
  return config;
});

// 挂载到原型链
Vue.prototype.$http = http;
Vue.prototype.$qs = qs; // 全局样式（必须）

// ================= 4. 路由守卫 =================
router.beforeEach((to, from, next) => {
  if (to.meta.title) {
    document.title = to.meta.title;
  }
  next();
});

Vue.config.productionTip = false;

new Vue({
  router,
  store,  
  render: (h) => h(App),
}).$mount('#app');
